(function($){
	$.extend({
		postJSON: function( url, params, callback ) {
			yanhx.exec("myWin.showload");
			return jQuery.post(url, params, function(data){
				    yanhx.exec("myWin.hideload");
					var ret=$.doAjaxRet(data);
					if(ret.direct){
						//已跳转页面 不处理
					}
					else if(!ret){
						yanhx.exec("myWin.alert",{
							content:data.message
						});
					}
					else{
						(callback)(data);	
					}
			},"json");
		},
		//同步调用
		syncPost:function( url, params, callback){
			return jQuery.ajax({
				type: "post",
				url: url,
				data: params,
				success: function(data){
					var ret=$.doAjaxRet(data);
					if(ret.direct){
						//已跳转页面 不处理
					}
					else if(!ret){
						yanhx.exec("myWin.alert",{
							content:data.message
						});
					}
					else{
						(callback)(data);	
					}
				},
				dataType: "json",
				async:false
			});
		},
		//增加了 statusCode的校验
		getJSON: function( url, params, callback ) {
			return jQuery.get(url, params, function(data){
				var ret=$.doAjaxRet(data);
				if(ret.direct){
					//已跳转页面 不处理
				}
				else if(!ret){
					yanhx.exec("myWin.alert",{
						content:data.message
					});
				}
				else{
					(callback)(data);	
				}
			},"json");	
		}		
	});
	$.isFireFox=function(){
		var ua=navigator.userAgent.toLowerCase();
		return ua.indexOf("firefox")>-1?true:false;
	};
	$.encodeUTF=function(obj){
		for(var key in obj){
			if(obj[key].constructor==window.Array){
				encodeArray(obj[key]);
			}
			if(obj[key].constructor==String){
				obj[key]=escape(obj[key]);
			}
		}
	}
	function encodeArray(obj){
		$(obj).each(function(i){
			if(this.constructor==String){
				obj[i]=escape(this);
			}
			else{
				encodeUTF(this);
			}
		});
	}
	$.decodeUTF=function(data){
		return JSON.parse(unescape(JSON.stringify(data)));
	}
	$.$parent=function(elem,tag){
			if(elem&&elem.tagName.toUpperCase()==tag)
				return elem;
			else if(elem&&elem.parentElement){
				return $.$parent(elem.parentElement,tag);	
			}
			else
				return null;
	}
	$.getPostion=function(e){
		return {
			x:e.pageX,
			y:e.pageY
		}
	},
	$.initEvent=function(e){
		//firefox 下 绑定 srcElement=target
		//简写srcElement 
		if(e.target)
			e.srcElement=e.target;	
		if(e.which)
			e.keyCode=e.which;
		e.src=e.srcElement;
	}
	$.doAjaxRet=function(data){
		if(data.result){
			if(data.result==200)
				return true;
			if(data.result==400){
				//doErrorRedirect(data);
				return false;
			}
			if(data.result==409){
				//doErrorRedirect(data);
				return false;
			}
			if(data.result==401){
				doBackHome();
				return {direct:true};
			}
			if(data.result==403||data.result==404){
				doErrorRedirect(data.result);
				return {direct:true};
			}
			if(data.result==500)
				return false;	
		}
		return true;
	};
	$.search=function(key){
		var _pathInfo=location.search;
		var start=_pathInfo.indexOf("?"+key+"=");
		if(start==-1){
			 start=_pathInfo.indexOf("&"+key+"=");	
		}
		_pathInfo=_pathInfo.substring(start+key.length+2);
		var end=_pathInfo.indexOf("&");
		if(start>-1){
			if(end==-1)
				end=_pathInfo.length;
			return _pathInfo.substring(0,end).trim();
		}
		else
			return null;	
	};
	$.checkResponse=function(res){
			try{
				var data=JSON.parse(res.responseText);
				if(!$.doAjaxRet(data)){
					$.messager.alert("&nbsp;",data.message);
					return false;	
				}
			}catch(e){
				//error
			}
			return true;
	};
	$.doLogin=function(){
			
	};
	$.startInterval=function(){
			$.loginInter=window.setInterval($.doLogin,5*60*1000);
	};
	$.clearInter=function(){
			window.clearInterval($.loginInter);
	};
	$.fileUpSuccess=function(response,self){
		//非STRING类型不处理
		if(typeof(response)!="string"){
			return true;
		}
		
		if(response.indexOf($.headStr['413'])>-1){
			$.messager.alert("&nbsp;",self._settings.errorMes);
			return false;
		}
		
		return true;
	
	};
	$.headStr={
		413:'Request Entity Too Large'	
	}
	function doErrorRedirect(statusCode){
		location.href='/prompt?module='+moduleName+"&statusCode="+statusCode;
	}
	function doBackHome(){
		top.location.href= "/user/logout";
	};
})(jQuery);